/**
 * The MIT License (MIT)
 * Copyright (c) 2021 铭软科技(mingsoft.net)
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 * the Software, and to permit persons to whom the Software is furnished to do so,
 * subject to the following conditions:

 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.

 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */


package net.mingsoft.basic.biz;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.mingsoft.base.biz.IBaseBiz;
import net.mingsoft.basic.action.q.ManagerListQuery;
import net.mingsoft.basic.action.q.ManagerSearchQuery;
import net.mingsoft.basic.action.r.ManagerResponse;
import net.mingsoft.basic.entity.ManagerEntity;

import java.util.List;


/**
 * 管理员业务层，接口，继承IBaseBiz
 * @author 张敏
 * @version 
 * 版本号：100-000-000<br/>
 * 创建日期：2012-03-15<br/>
 * 历史修订：<br/>
 */
public interface IManagerBiz extends IBaseBiz<ManagerEntity> {
	
    
	/**
	 * 根据用户名修改用户密码
	 * @param manager 管理员实体
	 */
	public void updateUserPasswordByUserName(ManagerEntity manager);
	
	/**
	 * 查询当前登录的管理员的所有子管理员
	 * @return 返回管理员集合
	 */
	public List<ManagerEntity> queryAllChildManager(int managerId);

	/**
	 * 根据账号名查询
	 * @param managerName 传入的账号
	 * @return 返回结果
	 */
	public ManagerEntity getManagerByManagerName(String managerName);

	/**
	 * 通过ID获取
	 * @param id 管理员ID
	 * @return 管理员信息
	 */
	ManagerEntity getById(Integer id);

	/**
	 * 新增管理员
	 * @param entity 管理员信息
	 * @return 新增结果
	 */
	boolean saveEntity(ManagerEntity entity);

	/**
	 * 根据管理员ID更新信息
	 * @param entity 实体
	 * @return 更新结果
	 */
	boolean updateByMangerId(ManagerEntity entity);

	Page<ManagerEntity> search(ManagerSearchQuery query);

	Page<ManagerResponse> managerList(ManagerListQuery query);
}
